#ifndef PARAM_PARSER_H
#define PARAM_PARSER_H

#include <tinyxml2/tinyxml2.h>
#include <string>

/**
 * @brief:  param解析器，只解析param内容，并将其设置到参数服务器中
 * @note:   param有命名空间
 *          如果节点没有正确启动，参数仍然会被设置(roscore同)
 */
class ParamParser
{
public:
    explicit ParamParser(const std::string &ns);
    virtual ~ParamParser();

    /**
     * @brief:  解析launch内部某个param类型
     * @param[in]:  element     launch内部的某个类型为param的元素，不为nullptr
     * @return  是否解析成功，出现格式错误等，返回false，否则返回true
     */
    bool parser(const tinyxml2::XMLElement *element);

private:
    std::string paramNameSpace;
};


#endif //PARAM_PARSER_H
